package com.situ.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.situ.domain.dto.AddRoleDTO;
import com.situ.domain.dto.RoleAndMenuDTO;
import com.situ.domain.dto.RolePageQueryDTO;
import com.situ.domain.dto.UpdateRoleDTO;
import com.situ.domain.entity.TRole;
import com.situ.domain.vo.BasePageQueryVO;
import com.situ.domain.vo.RoleAndMenuVO;

import java.util.List;

public interface RoleService extends IService<TRole> {

    /**
     * 分页查询角色列表
     * @param pageQueryDTO
     * @return
     */
    BasePageQueryVO<TRole> getRoleList(RolePageQueryDTO pageQueryDTO);

    /**
     * 添加角色
     * @param roleDTO
     */
    void addRole(AddRoleDTO roleDTO);

    /**
     * 锁定或解锁角色
     * @param status
     * @param id
     */
    void lock(Integer status, Long id);

    /**
     * 根据角色id查询角色
     * @param id
     * @return
     */
    RoleAndMenuVO getRoleAndMenuById(Long id);

    /**
     * 修改角色
     * @param roleDTO
     */
    void updateRole(UpdateRoleDTO roleDTO);
}
